#ifndef SDL_GAME_OBJECT_
#define SDL_GAME_OBJECT_

#include "game_object.h"
#include "load_params.h"
#include "vector2D.h"

class SDLGameObject : public GameObject {
public:
    SDLGameObject();
    virtual void Draw() override;
    virtual void Update() override;
    virtual void Clean() override;
    virtual void Load(const LoadParams* params) override;

    virtual Vector2D& get_position();
    virtual int get_width() const;
    virtual int get_height() const;

protected:
    Vector2D position_;
    Vector2D velocity_;
    Vector2D acceleration_;
    int width_;
    int height_;
    int current_row_;
    int current_frame_;
    int num_frames_;
    int anim_speed_;
    int callback_id_;
    std::string textureid_;

    /** LoadParams x_,y_ for Vector2D parameters above
    int x_;
    int y_;
    int width_;
    int height_;
    int num_frames_;
    int callback_id_;
    int anim_speed_;
    std::string textureid_;
    */

};

#endif // SDL_GAME_OBJECT_
